merge
authorawilliam@xenbuild.aw <awilliam@xenbuild.aw>
Wed, 1 Mar 2006 19:47:25 +0000 (12:47 -0700)
committerawilliam@xenbuild.aw <awilliam@xenbuild.aw>
Wed, 1 Mar 2006 19:47:25 +0000 (12:47 -0700)
1  2 
xen/arch/ia64/vmx/vmx_hypercall.c
xen/arch/ia64/xen/process.c
xen/include/asm-ia64/config.h
xen/include/asm-ia64/linux-xen/asm/README.origin

Simple merge
index e1f10ce49a43e7d32341c097c8654c3fd81e8a22,7ecfabf01ededd1f7b4ed7c162375ab4d2a47e9b..332a9a0f910fc4f3a35ba55c5743e5d326b2c983
@@@ -801,11 -796,14 +801,13 @@@ printf("*** Handled privop masqueradin
        reflect_interruption(isr,regs,vector);
  }
  
- unsigned long __hypercall_create_continuation(
-       unsigned int op, unsigned int nr_args, ...)
+ unsigned long hypercall_create_continuation(
+       unsigned int op, const char *format, ...)
  {
      struct mc_state *mcs = &mc_state[smp_processor_id()];
 -    VCPU *vcpu = current;
 -    struct cpu_user_regs *regs = vcpu_regs(vcpu);
 +    struct vcpu *v = current;
+     const char *p = format;
+     unsigned long arg;
      unsigned int i;
      va_list args;
  
      if ( test_bit(_MCSF_in_multicall, &mcs->flags) ) {
        panic("PREEMPT happen in multicall\n"); // Not support yet
      } else {
 -      vcpu_set_gr(vcpu, 2, op, 0);
 +      vcpu_set_gr(v, 2, op, 0);
-       for ( i = 0; i < nr_args; i++) {
+       for ( i = 0; *p != '\0'; i++) {
+             switch ( *p++ )
+             {
+             case 'i':
+                 arg = (unsigned long)va_arg(args, unsigned int);
+                 break;
+             case 'l':
+                 arg = (unsigned long)va_arg(args, unsigned long);
+                 break;
+             case 'p':
+             case 'h':
+                 arg = (unsigned long)va_arg(args, void *);
+                 break;
+             default:
+                 arg = 0;
+                 BUG();
+             }
            switch (i) {
-           case 0: vcpu_set_gr(v, 14, va_arg(args, unsigned long), 0);
 -          case 0: vcpu_set_gr(vcpu, 14, arg, 0);
++          case 0: vcpu_set_gr(v, 14, arg, 0);
                    break;
-           case 1: vcpu_set_gr(v, 15, va_arg(args, unsigned long), 0);
 -          case 1: vcpu_set_gr(vcpu, 15, arg, 0);
++          case 1: vcpu_set_gr(v, 15, arg, 0);
                    break;
-           case 2: vcpu_set_gr(v, 16, va_arg(args, unsigned long), 0);
 -          case 2: vcpu_set_gr(vcpu, 16, arg, 0);
++          case 2: vcpu_set_gr(v, 16, arg, 0);
                    break;
-           case 3: vcpu_set_gr(v, 17, va_arg(args, unsigned long), 0);
 -          case 3: vcpu_set_gr(vcpu, 17, arg, 0);
++          case 3: vcpu_set_gr(v, 17, arg, 0);
                    break;
-           case 4: vcpu_set_gr(v, 18, va_arg(args, unsigned long), 0);
 -          case 4: vcpu_set_gr(vcpu, 18, arg, 0);
++          case 4: vcpu_set_gr(v, 18, arg, 0);
                    break;
            default: panic("Too many args for hypercall continuation\n");
                    break;
index 0be8270ed607065d869409dda95049bd63c7d42e,9c06e0f50c3747845c88d64636b9db69bfc99cc5..0202fa049e46d05adb5b55299e013389b79dabd6
@@@ -293,18 -295,14 +290,17 @@@ extern int ht_per_core
  #endif /* __XEN_IA64_CONFIG_H__ */
  
  // needed for include/xen/smp.h
 -#ifdef CONFIG_SMP
 -#define raw_smp_processor_id()        current->processor
 -#else
 -#define raw_smp_processor_id()        0
 -#endif
 +//#ifdef CONFIG_SMP
 +//#define raw_smp_processor_id()      current->processor
 +//#else
 +//#define raw_smp_processor_id()      0
 +//#endif
  
  #ifndef __ASSEMBLY__
  #include <linux/linkage.h>
 +#define FORCE_CRASH() asm("break.m 0;;");
 +#else
 +#define FORCE_CRASH   break.m 0;;
  #endif
  
  #endif        /* _IA64_CONFIG_H_ */